\hypertarget{classCWaveIO}{
\section{\-C\-Wave\-I\-O \-Class \-Reference}
\label{classCWaveIO}\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}
}


{\ttfamily \#include $<$wave\-\_\-io.\-h$>$}

\-Inheritance diagram for \-C\-Wave\-I\-O\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classCWaveIO}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCWaveIO_a084f3edb7cd029cdb8af349fb3e256f3}{\-C\-Wave\-I\-O} (\hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} p\-Action, std\-::string p\-Wav\-Input\-File, std\-::string p\-Wav\-Output\-File, double p\-Discard\-Time)
\item 
\hyperlink{classCWaveIO_a1639eb22c59fddfdfee87d83c9d3b999}{\-C\-Wave\-I\-O} (\hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} p\-Action, std\-::string p\-Wav\-Input\-File, bool p\-Replay\-Input)
\item 
\hyperlink{classCWaveIO_ab8bce7990c4e0e6b2341eb623dc39903}{\-C\-Wave\-I\-O} (\hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} p\-Action, std\-::string p\-Wav\-Output\-File, \hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} p\-Stream\-Info)
\item 
virtual \hyperlink{classCWaveIO_af0d39cbad670ee18970d39b4cbb011c4}{$\sim$\-C\-Wave\-I\-O} ()
\item 
virtual int \hyperlink{classCWaveIO_aaa8e7eb8813f388fca7ca70205105d03}{init} (\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$p\-Config)
\item 
virtual int \hyperlink{classCWaveIO_a87e3fbd7fa9ba9555c72a5aade4494b4}{destroy} ()
\item 
virtual int \hyperlink{classCWaveIO_aa510ff6ab283ba7ce92e8405b5aed505}{read} (void $\ast$$\ast$p\-Data, \hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} \&p\-Action, int p\-Timeout=1000)
\item 
virtual int \hyperlink{classCWaveIO_a50b4a495002aca5a6e4e9bdde80fe5cf}{read} (void $\ast$$\ast$p\-Data, \hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} \&p\-Action, int p\-Timeout, int p\-Max\-Read)
\item 
virtual int \hyperlink{classCWaveIO_a142ebb8a033f2ffc6f733c70a26ec7d0}{write} (void $\ast$p\-Data, const \hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} \&p\-Action, int p\-Length)
\item 
virtual \hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} \hyperlink{classCWaveIO_a32288b446b36daf22a72ac1bdc4bb772}{get\-Stream\-Info} ()
\end{DoxyCompactItemize}
\subsection*{\-Private \-Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24ea}{\-E\-Init\-Error} \{ \hyperlink{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaab98f25e9388e0e349eaedaf646431d4e}{\-I\-N\-I\-T\-\_\-\-N\-O\-\_\-\-E\-R\-R\-O\-R} =  0, 
\hyperlink{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaa4e0f9fce79ffab95e205f9a4b31c0219}{\-I\-N\-I\-T\-\_\-\-F\-A\-I\-L\-U\-R\-E} =  1, 
\hyperlink{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaa3ef548258c9cf797de95c46851163993}{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R} =  2, 
\hyperlink{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaaff880a13e3b8075553882625fbc22c49}{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-O\-U\-T\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R} =  3
 \}
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCWaveIO_ae746590f750fe373aec1faf612d3bbd2}{\-C\-Wave\-I\-O} (const \hyperlink{classCWaveIO}{\-C\-Wave\-I\-O} \&)
\item 
\hyperlink{classCWaveIO}{\-C\-Wave\-I\-O} \& \hyperlink{classCWaveIO_a19b7c3e5792af401a2eaa2703064e8a2}{operator=} (const \hyperlink{classCWaveIO}{\-C\-Wave\-I\-O} \&)
\item 
bool \hyperlink{classCWaveIO_a3a46707de0b4dff1d2aabf37047d3212}{open\-Input\-File} (std\-::string p\-Mono\-Wav\-Input\-File)
\item 
\hyperlink{namespaceNAudioFormats_a8819e97264e4bbfee5d0552ee4c36c7c}{\-N\-Audio\-Formats\-::\-E\-Samples\-Width} \hyperlink{classCWaveIO_a480c1f01295df571756ca8553b47490d}{get\-Sample\-Width} (unsigned int p\-Bits\-Per\-Sample)
\item 
unsigned int \hyperlink{classCWaveIO_a1261d34087c1ca3af7d988695252fd71}{get\-Bits\-Per\-Sample} (\hyperlink{namespaceNAudioFormats_a8819e97264e4bbfee5d0552ee4c36c7c}{\-N\-Audio\-Formats\-::\-E\-Samples\-Width} p\-Sample\-Width)
\item 
\hyperlink{namespaceNAudioFormats_a3bd6168a4f5f18e84873337a65d3062c}{\-N\-Audio\-Formats\-::\-E\-Codec} \hyperlink{classCWaveIO_a6f7f26afb68a4d90d3a13f6321464ea5}{get\-Codec} (\hyperlink{namespaceNWaveFormatTag_a984a591ddf2ea06019b5881d5b83364d}{\-N\-Wave\-Format\-Tag\-::\-E\-Format\-Tag} p\-Wave\-Format\-Tag)
\item 
\hyperlink{namespaceNWaveFormatTag_a984a591ddf2ea06019b5881d5b83364d}{\-N\-Wave\-Format\-Tag\-::\-E\-Format\-Tag} \hyperlink{classCWaveIO_a1f42a89f715cca459f1d57879dec2b4e}{get\-Wave\-Format\-Tag} (\hyperlink{namespaceNAudioFormats_a3bd6168a4f5f18e84873337a65d3062c}{\-N\-Audio\-Formats\-::\-E\-Codec} p\-Codec)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24ea}{\-E\-Init\-Error} \hyperlink{classCWaveIO_a840699af632277923a70a0228fb03256}{m\-Error}
\item 
\hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} \hyperlink{classCWaveIO_a3808e48d44b485bb520dad3c6035d010}{m\-Action}
\item 
\hyperlink{classCRiffWave}{\-C\-Riff\-Wave} $\ast$ \hyperlink{classCWaveIO_a07addea538ef0c82d7c7428f1e150200}{m\-Wav\-In}
\item 
\hyperlink{classCRiffWaveWriter}{\-C\-Riff\-Wave\-Writer} $\ast$ \hyperlink{classCWaveIO_abd638048ba09d8ff170aef8639406c4d}{m\-Wav\-Out}
\item 
unsigned char $\ast$ \hyperlink{classCWaveIO_a869289411bf4dec1b0c8a091a4303c16}{m\-Read\-Byte\-Buffer}
\item 
bool \hyperlink{classCWaveIO_a06434e47bf8160e95b3ba05d09234a04}{m\-Replay\-Input}
\item 
int \hyperlink{classCWaveIO_a8e4204695f7396613b8965ea3964d226}{m\-Discard\-Byte\-Count}
\item 
unsigned int \hyperlink{classCWaveIO_a4baca210310c73d64ef3289ef2711598}{m\-Byte\-Per\-Sample}
\item 
\hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} \hyperlink{classCWaveIO_aae408d020756faba8e4b8457ed889bc8}{m\-Stream\-Info}
\item 
bool \hyperlink{classCWaveIO_ab3f14eee2da307b2e708de2601f3d774}{m\-Read\-In\-Realtime}
\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCWaveIO_ab88b12dbc2d6f32cba9382df7a150fcd}{s\-Ini\-Section\-Name}
\end{DoxyCompactItemize}


\subsection{\-Member \-Enumeration \-Documentation}
\hypertarget{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24ea}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-E\-Init\-Error@{\-E\-Init\-Error}}
\index{\-E\-Init\-Error@{\-E\-Init\-Error}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{\-E\-Init\-Error}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \-C\-Wave\-I\-O\-::\-E\-Init\-Error}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24ea}
\begin{Desc}
\item[\-Enumerator\-: ]\par
\begin{description}
\index{\-I\-N\-I\-T\-\_\-\-N\-O\-\_\-\-E\-R\-R\-O\-R@{\-I\-N\-I\-T\-\_\-\-N\-O\-\_\-\-E\-R\-R\-O\-R}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-I\-N\-I\-T\-\_\-\-N\-O\-\_\-\-E\-R\-R\-O\-R@{\-I\-N\-I\-T\-\_\-\-N\-O\-\_\-\-E\-R\-R\-O\-R}}\item[{\em 
\hypertarget{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaab98f25e9388e0e349eaedaf646431d4e}{
\-I\-N\-I\-T\-\_\-\-N\-O\-\_\-\-E\-R\-R\-O\-R}
\label{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaab98f25e9388e0e349eaedaf646431d4e}
}]\index{\-I\-N\-I\-T\-\_\-\-F\-A\-I\-L\-U\-R\-E@{\-I\-N\-I\-T\-\_\-\-F\-A\-I\-L\-U\-R\-E}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-I\-N\-I\-T\-\_\-\-F\-A\-I\-L\-U\-R\-E@{\-I\-N\-I\-T\-\_\-\-F\-A\-I\-L\-U\-R\-E}}\item[{\em 
\hypertarget{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaa4e0f9fce79ffab95e205f9a4b31c0219}{
\-I\-N\-I\-T\-\_\-\-F\-A\-I\-L\-U\-R\-E}
\label{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaa4e0f9fce79ffab95e205f9a4b31c0219}
}]\index{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}}\item[{\em 
\hypertarget{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaa3ef548258c9cf797de95c46851163993}{
\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}
\label{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaa3ef548258c9cf797de95c46851163993}
}]\index{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-O\-U\-T\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-O\-U\-T\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-O\-U\-T\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-O\-U\-T\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}}\item[{\em 
\hypertarget{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaaff880a13e3b8075553882625fbc22c49}{
\-I\-N\-I\-T\-\_\-\-W\-A\-V\-E\-\_\-\-O\-U\-T\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}
\label{classCWaveIO_a87e105afa1a6bb0a49fa70abd3ec24eaaff880a13e3b8075553882625fbc22c49}
}]\end{description}
\end{Desc}



\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCWaveIO_a084f3edb7cd029cdb8af349fb3e256f3}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{\-C\-Wave\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Wave\-I\-O\-::\-C\-Wave\-I\-O (
\begin{DoxyParamCaption}
\item[{{\bf \-E\-Action}}]{p\-Action, }
\item[{std\-::string}]{p\-Wav\-Input\-File, }
\item[{std\-::string}]{p\-Wav\-Output\-File, }
\item[{double}]{p\-Discard\-Time}
\end{DoxyParamCaption}
)}}
\label{classCWaveIO_a084f3edb7cd029cdb8af349fb3e256f3}
for read and write \hypertarget{classCWaveIO_a1639eb22c59fddfdfee87d83c9d3b999}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{\-C\-Wave\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Wave\-I\-O\-::\-C\-Wave\-I\-O (
\begin{DoxyParamCaption}
\item[{{\bf \-E\-Action}}]{p\-Action, }
\item[{std\-::string}]{p\-Wav\-Input\-File, }
\item[{bool}]{p\-Replay\-Input}
\end{DoxyParamCaption}
)}}
\label{classCWaveIO_a1639eb22c59fddfdfee87d83c9d3b999}
only for read \hypertarget{classCWaveIO_ab8bce7990c4e0e6b2341eb623dc39903}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{\-C\-Wave\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Wave\-I\-O\-::\-C\-Wave\-I\-O (
\begin{DoxyParamCaption}
\item[{{\bf \-E\-Action}}]{p\-Action, }
\item[{std\-::string}]{p\-Wav\-Output\-File, }
\item[{{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info}}]{p\-Stream\-Info}
\end{DoxyParamCaption}
)}}
\label{classCWaveIO_ab8bce7990c4e0e6b2341eb623dc39903}
only for write \hypertarget{classCWaveIO_af0d39cbad670ee18970d39b4cbb011c4}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!$\sim$\-C\-Wave\-I\-O@{$\sim$\-C\-Wave\-I\-O}}
\index{$\sim$\-C\-Wave\-I\-O@{$\sim$\-C\-Wave\-I\-O}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{$\sim$\-C\-Wave\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Wave\-I\-O\-::$\sim$\-C\-Wave\-I\-O (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_af0d39cbad670ee18970d39b4cbb011c4}
\hypertarget{classCWaveIO_ae746590f750fe373aec1faf612d3bbd2}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}}
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{\-C\-Wave\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Wave\-I\-O\-::\-C\-Wave\-I\-O (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Wave\-I\-O} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_ae746590f750fe373aec1faf612d3bbd2}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCWaveIO_a87e3fbd7fa9ba9555c72a5aade4494b4}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!destroy@{destroy}}
\index{destroy@{destroy}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{destroy}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Wave\-I\-O\-::destroy (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_a87e3fbd7fa9ba9555c72a5aade4494b4}


\-Implements \hyperlink{classISampleIO_a4a3ef7be5c5abba7f9993913380cb14f}{\-I\-Sample\-I\-O}.

\hypertarget{classCWaveIO_a1261d34087c1ca3af7d988695252fd71}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!get\-Bits\-Per\-Sample@{get\-Bits\-Per\-Sample}}
\index{get\-Bits\-Per\-Sample@{get\-Bits\-Per\-Sample}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{get\-Bits\-Per\-Sample}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int \-C\-Wave\-I\-O\-::get\-Bits\-Per\-Sample (
\begin{DoxyParamCaption}
\item[{{\bf \-N\-Audio\-Formats\-::\-E\-Samples\-Width}}]{p\-Sample\-Width}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a1261d34087c1ca3af7d988695252fd71}
\hypertarget{classCWaveIO_a6f7f26afb68a4d90d3a13f6321464ea5}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!get\-Codec@{get\-Codec}}
\index{get\-Codec@{get\-Codec}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{get\-Codec}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Audio\-Formats\-::\-E\-Codec} \-C\-Wave\-I\-O\-::get\-Codec (
\begin{DoxyParamCaption}
\item[{{\bf \-N\-Wave\-Format\-Tag\-::\-E\-Format\-Tag}}]{p\-Wave\-Format\-Tag}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a6f7f26afb68a4d90d3a13f6321464ea5}
\hypertarget{classCWaveIO_a480c1f01295df571756ca8553b47490d}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!get\-Sample\-Width@{get\-Sample\-Width}}
\index{get\-Sample\-Width@{get\-Sample\-Width}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{get\-Sample\-Width}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Audio\-Formats\-::\-E\-Samples\-Width} \-C\-Wave\-I\-O\-::get\-Sample\-Width (
\begin{DoxyParamCaption}
\item[{unsigned int}]{p\-Bits\-Per\-Sample}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a480c1f01295df571756ca8553b47490d}
\hypertarget{classCWaveIO_a32288b446b36daf22a72ac1bdc4bb772}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!get\-Stream\-Info@{get\-Stream\-Info}}
\index{get\-Stream\-Info@{get\-Stream\-Info}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{get\-Stream\-Info}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info} \-C\-Wave\-I\-O\-::get\-Stream\-Info (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_a32288b446b36daf22a72ac1bdc4bb772}


\-Implements \hyperlink{classISampleIO_a9e43c9190bd486f654f930aa49af48d1}{\-I\-Sample\-I\-O}.

\hypertarget{classCWaveIO_a1f42a89f715cca459f1d57879dec2b4e}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!get\-Wave\-Format\-Tag@{get\-Wave\-Format\-Tag}}
\index{get\-Wave\-Format\-Tag@{get\-Wave\-Format\-Tag}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{get\-Wave\-Format\-Tag}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Wave\-Format\-Tag\-::\-E\-Format\-Tag} \-C\-Wave\-I\-O\-::get\-Wave\-Format\-Tag (
\begin{DoxyParamCaption}
\item[{{\bf \-N\-Audio\-Formats\-::\-E\-Codec}}]{p\-Codec}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a1f42a89f715cca459f1d57879dec2b4e}
\hypertarget{classCWaveIO_aaa8e7eb8813f388fca7ca70205105d03}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!init@{init}}
\index{init@{init}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Wave\-I\-O\-::init (
\begin{DoxyParamCaption}
\item[{{\bf \-C\-Properties\-Reader} $\ast$}]{p\-Config}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_aaa8e7eb8813f388fca7ca70205105d03}
\begin{DoxyNote}{\-Note}
\-The instance of the properties reader will be freed (delete) by the main programm and is not allowed by the deconstructor of an inherit \-I\-O class.
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Config} & pointer to the properties reader \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 on success, -\/1 otherwise 
\end{DoxyReturn}


\-Implements \hyperlink{classISampleIO_ab8ef7dd9048d0944d3c5f50329e0874d}{\-I\-Sample\-I\-O}.

\hypertarget{classCWaveIO_a3a46707de0b4dff1d2aabf37047d3212}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!open\-Input\-File@{open\-Input\-File}}
\index{open\-Input\-File@{open\-Input\-File}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{open\-Input\-File}]{\setlength{\rightskip}{0pt plus 5cm}bool \-C\-Wave\-I\-O\-::open\-Input\-File (
\begin{DoxyParamCaption}
\item[{std\-::string}]{p\-Mono\-Wav\-Input\-File}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a3a46707de0b4dff1d2aabf37047d3212}
\hypertarget{classCWaveIO_a19b7c3e5792af401a2eaa2703064e8a2}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!operator=@{operator=}}
\index{operator=@{operator=}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Wave\-I\-O}\& \-C\-Wave\-I\-O\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Wave\-I\-O} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a19b7c3e5792af401a2eaa2703064e8a2}
\hypertarget{classCWaveIO_aa510ff6ab283ba7ce92e8405b5aed505}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!read@{read}}
\index{read@{read}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{read}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Wave\-I\-O\-::read (
\begin{DoxyParamCaption}
\item[{void $\ast$$\ast$}]{p\-Data, }
\item[{{\bf \-E\-Action} \&}]{p\-Action, }
\item[{int}]{p\-Timeout = {\ttfamily 1000}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_aa510ff6ab283ba7ce92e8405b5aed505}

\begin{DoxyParams}{\-Parameters}
{\em p\-Data} & \-Array of bytes, read from media. \-The buffer for data will be provided by the read method. \-Therefore a void$\ast$$\ast$ and not a void$\ast$ is needed. \\
\hline
{\em p\-Action} & displays what has to be done, it also enables the direction from which data came from \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
number of bytes read, 0 for \-E\-O\-F and -\/1 for a timeout or an error 
\end{DoxyReturn}


\-Implements \hyperlink{classISampleIO_a5843d1feda7bfffb86dd260a08f5516d}{\-I\-Sample\-I\-O}.

\hypertarget{classCWaveIO_a50b4a495002aca5a6e4e9bdde80fe5cf}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!read@{read}}
\index{read@{read}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{read}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Wave\-I\-O\-::read (
\begin{DoxyParamCaption}
\item[{void $\ast$$\ast$}]{p\-Data, }
\item[{{\bf \-E\-Action} \&}]{p\-Action, }
\item[{int}]{p\-Timeout, }
\item[{int}]{p\-Max\-Read}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_a50b4a495002aca5a6e4e9bdde80fe5cf}

\begin{DoxyParams}{\-Parameters}
{\em p\-Max\-Read} & max read in bytes \\
\hline
\end{DoxyParams}
\hypertarget{classCWaveIO_a142ebb8a033f2ffc6f733c70a26ec7d0}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!write@{write}}
\index{write@{write}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{write}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Wave\-I\-O\-::write (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{p\-Data, }
\item[{const {\bf \-E\-Action} \&}]{p\-Action, }
\item[{int}]{p\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCWaveIO_a142ebb8a033f2ffc6f733c70a26ec7d0}

\begin{DoxyParams}{\-Parameters}
{\em p\-Data} & \-Address of the \-Buffer which will be written to the media. \\
\hline
{\em p\-Action} & displays what has to be done, it also enables the direction from which data came from \\
\hline
{\em p\-Length} & \-Length/\-Size of the buffer (unit\-: byte) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
number of bytes written or -\/1 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classISampleIO_ae2026aece7114980b715076b45b906f9}{\-I\-Sample\-I\-O}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCWaveIO_a3808e48d44b485bb520dad3c6035d010}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Action@{m\-Action}}
\index{m\-Action@{m\-Action}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Action}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-E\-Action} {\bf \-C\-Wave\-I\-O\-::m\-Action}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a3808e48d44b485bb520dad3c6035d010}
\hypertarget{classCWaveIO_a4baca210310c73d64ef3289ef2711598}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Byte\-Per\-Sample@{m\-Byte\-Per\-Sample}}
\index{m\-Byte\-Per\-Sample@{m\-Byte\-Per\-Sample}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Byte\-Per\-Sample}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf \-C\-Wave\-I\-O\-::m\-Byte\-Per\-Sample}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a4baca210310c73d64ef3289ef2711598}
\hypertarget{classCWaveIO_a8e4204695f7396613b8965ea3964d226}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Discard\-Byte\-Count@{m\-Discard\-Byte\-Count}}
\index{m\-Discard\-Byte\-Count@{m\-Discard\-Byte\-Count}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Discard\-Byte\-Count}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-C\-Wave\-I\-O\-::m\-Discard\-Byte\-Count}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a8e4204695f7396613b8965ea3964d226}
\hypertarget{classCWaveIO_a840699af632277923a70a0228fb03256}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Error@{m\-Error}}
\index{m\-Error@{m\-Error}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Error}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-E\-Init\-Error} {\bf \-C\-Wave\-I\-O\-::m\-Error}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a840699af632277923a70a0228fb03256}
\hypertarget{classCWaveIO_a869289411bf4dec1b0c8a091a4303c16}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Read\-Byte\-Buffer@{m\-Read\-Byte\-Buffer}}
\index{m\-Read\-Byte\-Buffer@{m\-Read\-Byte\-Buffer}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Read\-Byte\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char$\ast$ {\bf \-C\-Wave\-I\-O\-::m\-Read\-Byte\-Buffer}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a869289411bf4dec1b0c8a091a4303c16}
\hypertarget{classCWaveIO_ab3f14eee2da307b2e708de2601f3d774}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Read\-In\-Realtime@{m\-Read\-In\-Realtime}}
\index{m\-Read\-In\-Realtime@{m\-Read\-In\-Realtime}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Read\-In\-Realtime}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf \-C\-Wave\-I\-O\-::m\-Read\-In\-Realtime}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_ab3f14eee2da307b2e708de2601f3d774}
\hypertarget{classCWaveIO_a06434e47bf8160e95b3ba05d09234a04}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Replay\-Input@{m\-Replay\-Input}}
\index{m\-Replay\-Input@{m\-Replay\-Input}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Replay\-Input}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf \-C\-Wave\-I\-O\-::m\-Replay\-Input}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a06434e47bf8160e95b3ba05d09234a04}
\hypertarget{classCWaveIO_aae408d020756faba8e4b8457ed889bc8}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Stream\-Info@{m\-Stream\-Info}}
\index{m\-Stream\-Info@{m\-Stream\-Info}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Stream\-Info}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info} {\bf \-C\-Wave\-I\-O\-::m\-Stream\-Info}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_aae408d020756faba8e4b8457ed889bc8}
\hypertarget{classCWaveIO_a07addea538ef0c82d7c7428f1e150200}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Wav\-In@{m\-Wav\-In}}
\index{m\-Wav\-In@{m\-Wav\-In}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Wav\-In}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Riff\-Wave}$\ast$ {\bf \-C\-Wave\-I\-O\-::m\-Wav\-In}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_a07addea538ef0c82d7c7428f1e150200}
\hypertarget{classCWaveIO_abd638048ba09d8ff170aef8639406c4d}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!m\-Wav\-Out@{m\-Wav\-Out}}
\index{m\-Wav\-Out@{m\-Wav\-Out}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{m\-Wav\-Out}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Riff\-Wave\-Writer}$\ast$ {\bf \-C\-Wave\-I\-O\-::m\-Wav\-Out}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCWaveIO_abd638048ba09d8ff170aef8639406c4d}
\hypertarget{classCWaveIO_ab88b12dbc2d6f32cba9382df7a150fcd}{
\index{\-C\-Wave\-I\-O@{\-C\-Wave\-I\-O}!s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}}
\index{s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}!CWaveIO@{\-C\-Wave\-I\-O}}
\subsubsection[{s\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-Wave\-I\-O\-::s\-Ini\-Section\-Name}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCWaveIO_ab88b12dbc2d6f32cba9382df7a150fcd}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{wave__io_8h}{wave\-\_\-io.\-h}\item 
\hyperlink{wave__io_8cxx}{wave\-\_\-io.\-cxx}\end{DoxyCompactItemize}
